*Replication Instructions for

*Partisan Risk Tolerance for In-Person Voting during the Pandemic: Survey Evidence from the U.S. 2020 Election

*Sam Whitt , Alixandra B. Yanus , Brian McDonald , Martin Kifer 

*Below are instructions for replicating all manuscript and online appendix tables and figures in STATA using the long format of the dataset 
*“IJPOR Risk Tolerance Replication Data_long format_finalversion”. Excel spreadsheets are also included for several figures. 

*Please contact Sam Whitt (swhitt@highpoint.edu) for questions regarding data replication. 

*Note: You may need to install STATA packages for cibar, medeff, and kict commands. 
*Use findit with command name to identify and download the appropriate packets to install. 

*Note: In addition, some graphs require additional formatting using filename.grec files with the graph play command. 
*To format a graph, simply run the command to generate the graph in the do file in STATA, then open the “Graph Editor” in STATA and 
*click on the GREEN “Play Recording” button, then select “Browse” to select the grec file from the folder “grec files for STATA graph formatting” 
*among Replication files. The name of the grec file is indicated in the note below the graph command in the do file for the specific graph 
*you wish to format. This should automatically format the graph, which you may then save to a location of your choosing.

*Manuscript Replication

*Replication in Text

*“Our research employs observational data from a two-wave study conducted between October 27-November 1, 2020 (pre-election study, N=955) 
*and November 10-23, 2020 (post-election study, N=609; of which 504 completed both waves).”

tab date if wave==1
tab date if wave==2
tab panel if wave==1
tab panel if wave==2

*“Responses to these items align on a single dimension in factor analysis; we combine them into an additive index of Covid-risky behavior 
*(Cronbach’s alpha=0.92).”

alpha washhands socialdistancing avoidgatherings wearmask stayhome

*“Our post-election sample included 609 respondents; 88% indicated that they voted in the 2020 election and 83% provided a party affiliation response 
*(41% identified as Democrats, 30% as Republicans, and 24% as Independents).”

tab date if wave==2
tab votemethod if wave==2
*(537/609=88%)
tab partyid if wave==2
*(504/609=83%)

*“First, we examine risk preferences in the pre-election sample (N=950).”

tab revrisk1 if wave==1
tab revrisk2 if wave==1

*“Figure 1.3 plots the average risk tolerance from the experimental tasks against people who vote by different methods 
*(N=537 due to exclusion of non-voters)”

tab votemethod if wave==2

*Figure 1

histogram votemethod if wave==2 & partyid<4, by(partyid) discrete percent addlabel
graph save g1, replace
cibar revrisk2 if wave==1 & partyid<4, over1(partyid)
graph save g2, replace
cibar revrisk1 if wave==1 & partyid<4, over1(partyid)
graph save g3, replace
cibar revrisk2, over1(votemethod)
graph save g4, replace
cibar revrisk1, over1(votemethod)
graph save g5, replace

graph combine g2.gph g3.gph
graph save g6, replace
graph combine g4.gph g5.gph
graph save g7, replace
graph combine g1.gph g6.gph g7.gph

*Note additional formatting requires a grec file with the command graph play "Figure 1 formatting.grec"

*Table 2

logit inperson ib3.partyid  if wave==2 & partyid<4, robust
logit inperson ib3.partyid revrisk1 if wave==2 & partyid<4, robust
logit inperson ib3.partyid revrisk2 if wave==2 & partyid<4, robust
logit inperson ib3.partyid revrisk1 revrisk2 if wave==2  & partyid<4, robust
logit inperson ib3.partyid revrisk1 revrisk2 dhadcovid alphacovidrisk covidhoax if wave==2 & partyid<4, robust
logit inperson republican##battleground##whowin2020 democrat revrisk1 revrisk2 dhadcovid alphacovidrisk covidhoax if wave==2 & partyid<4 & whowin2020<3 & partyid~=., cluster(state)


*Appendix Replication

*Appendix Table 2. Summary of Variables and Demographics (Post-Election Sample, Voters)

sum i.votemethod revrisk1 revrisk2 republican democrat independent female ageyr education ib2.race dlatino dbornusa devangelical income unemp1020 dhadcovid alphacovidrisk covidhoax  pnew_death  pnew_case i.census_region rural dvoteprimary pstatebiden battleground flipped if wave==2 & votemethod~=.

*gen battleground==1 if state =="AZ" | state=="FL" | state=="GA" | state=="IA" | state=="MI" | state=="OH" | state=="MN" | state=="NV" | state=="NH" | state=="NC" | state=="TX" | state=="PA" | state=="WI"

*Appendix Figure 1. Expected Value of Risk-Taking

*See “EV calculations.xls” for calculation of Expected Values for each decision task. To replicate this figure, use dataset “EV calculations US.dta”. 
*graph twoway (line evrationalrisk choice) (line evirrationalrisk choice)

*Note additional formatting requires a grec file with the command graph play "SA Figure 1 formatting.grec"

*Factor Analysis of Covid-Risky Behavior Index (Pooled Samples, Pre/Post-Election)

factor alpha washhands socialdistancing avoidgatherings wearmask stayhome if wave==2 & votemethod~=.

*To generate index of covid risky behavior, use the following:
*alpha washhands socialdistancing avoidgatherings wearmask stayhome, gen(alphacovidrisk)

*Manuscript Table 2 Robustness Checks and Extended Controls

*Appendix Table 3. Voting and risk tolerance (logit, extended controls)

logit inperson ib3.partyid revrisk1  pnew_case pnew_death female ageyr education income ib2.race dlatino dbornusa devangelical i.census_region rural dvoteprimary pstatebiden flipped unemp1020 if wave==2 & partyid<4, robust
logit inperson ib3.partyid revrisk2  pnew_case pnew_death female ageyr education income ib2.race dlatino dbornusa devangelical i.census_region rural dvoteprimary pstatebiden flipped unemp1020 if wave==2 & partyid<4, robust
logit inperson ib3.partyid dhadcovid alphacovidrisk covidhoax pnew_case pnew_death female ageyr education income ib2.race dlatino dbornusa devangelical i.census_region rural dvoteprimary pstatebiden flipped unemp1020 if wave==2 & partyid<4, robust
logit inperson republican##battleground##whowin2020 democrat revrisk1 revrisk2 dhadcovid alphacovidrisk covidhoax  pnew_case pnew_death female ageyr education income ib2.race dlatino dbornusa devangelical i.census_region rural dvoteprimary pstatebiden flipped unemp1020 if wave==2 & whowin2020<3 & partyid<4, cluster(state)

*Appendix Table 4. Voting and risk tolerance in the 2020 election. (multinomial logit)

mlogit votemethod ib3.partyid  if wave==2 & partyid<4, robust
mlogit votemethod ib3.partyid revrisk1 if wave==2 & partyid<4, robust
mlogit votemethod ib3.partyid revrisk2 if wave==2 & partyid<4, robust
mlogit votemethod ib3.partyid revrisk1 revrisk2 if wave==2  & partyid<4, robust
mlogit votemethod ib3.partyid revrisk1 revrisk2 dhadcovid alphacovidrisk covidhoax if wave==2 & partyid<4, robust
mlogit votemethod republican##whowin2020##battleground democrat revrisk1 revrisk2 dhadcovid  alphacovidrisk covidhoax if wave==2 & whowin2020<3 & partyid<4, cluster(state)

*Appendix Table 5. Voting and risk tolerance. (multinomial logit, extended controls)

mlogit votemethod ib3.partyid revrisk1  pnew_case pnew_death female ageyr education income ib2.race dlatino dbornusa devangelical i.census_region rural dvoteprimary pstatebiden flipped unemp1020 if wave==2 & partyid<4, robust
mlogit votemethod ib3.partyid revrisk2  pnew_case pnew_death female ageyr education income ib2.race dlatino dbornusa devangelical i.census_region rural dvoteprimary pstatebiden flipped unemp1020 if wave==2 & partyid<4, robust
mlogit votemethod ib3.partyid dhadcovid alphacovidrisk covidhoax pnew_case pnew_death female ageyr education income ib2.race dlatino dbornusa devangelical i.census_region rural dvoteprimary pstatebiden flipped unemp1020 if wave==2 & partyid<4, robust
mlogit votemethod republican##battleground##whowin2020 democrat revrisk1 revrisk2 dhadcovid alphacovidrisk covidhoax  pnew_case pnew_death female ageyr education income ib2.race dlatino dbornusa devangelical i.census_region rural dvoteprimary pstatebiden flipped unemp1020 if wave==2 & whowin2020<3 & partyid<4, cluster(state)

*Pooling Early In-Person and Election Day In-Person (Logit Regression)

*Appendix Table 6. Voting and Risk Tolerance in the 2020 Election (Logit Regression)

logit allinperson ib3.partyid  if wave==2 & partyid<4, robust
logit allinperson ib3.partyid revrisk1 if wave==2 & partyid<4, robust
logit allinperson ib3.partyid revrisk2 if wave==2 & partyid<4, robust
logit allinperson ib3.partyid dhadcovid alphacovidrisk covidhoax if wave==2 & partyid<4, robust
logit allinperson republican##whowin2020##battleground democrat if wave==2 & whowin2020<3 & partyid<4, cluster(state)

*Appendix Table 7 Comparing Voting On/Before Election Day In-Person 

mlogit votemethod ib3.partyid  if wave==2 & partyid<4, robust
mlogit votemethod ib3.partyid revrisk1 if wave==2 & partyid<4, robust
mlogit votemethod ib3.partyid revrisk2 if wave==2 & partyid<4, robust
mlogit votemethod ib3.partyid  dhadcovid alphacovidrisk covidhoax if wave==2 & partyid<4, robust
mlogit votemethod republican##whowin2020##battleground democrat revrisk1 revrisk2 dhadcovid  alphacovidrisk covidhoax if wave==2 & whowin2020<3 & partyid<4, cluster(state)

*Appendix Table 8. Covid-19-Related Risk and Partisan Risk-Taking 

reg revrisk1 ib3.partyid  wave if partyid<4, cluster(respid)
reg revrisk2 ib3.partyid  wave if partyid<4, cluster(respid)
reg revrisk1 ib3.partyid  dhadcovid alphacovidrisk covidhoax wave if partyid<4, cluster(respid)
reg revrisk2 ib3.partyid  dhadcovid alphacovidrisk covidhoax wave if partyid<4, cluster(respid)

*Appendix Table 9 Mediation Analysis

medeff (regress revrisk1 republican democrat) (logit inperson republican democrat revrisk1) if wave==2 & votemethod~=. & partyid~=., mediate(revrisk1) treat(republican)
medsens (regress revrisk1 republican democrat) (logit inperson republican democrat revrisk1) if wave==2 & votemethod~=. & partyid~=., mediate(revrisk1) treat(republican)

medeff (regress revrisk2 republican democrat) (logit inperson republican democrat revrisk2) if wave==2 & votemethod~=. & partyid~=., mediate(revrisk2) treat(republican)
medsens (regress revrisk2 republican democrat) (logit inperson republican democrat revrisk2) if wave==2 & votemethod~=. & partyid~=., mediate(revrisk2) treat(republican)

medeff (logit dhadcovid republican democrat) (logit inperson republican democrat dhadcovid) if wave==2 & votemethod~=. & partyid~=., mediate(dhadcovid) treat(republican)
*note: medsens cannot be used with binary outcome and mediator variables.

medeff (regress alphacovidrisk republican democrat) (logit inperson republican democrat alphacovidrisk) if wave==2 & votemethod~=. & partyid~=., mediate(alphacovidrisk) treat(republican)
medsens (regress alphacovidrisk republican democrat) (logit inperson republican democrat alphacovidrisk) if wave==2 & votemethod~=. & partyid~=., mediate(alphacovidrisk) treat(republican)

medeff (regress covidhoax republican democrat) (logit inperson republican democrat covidhoax) if wave==2 & votemethod~=. & partyid~=., mediate(covidhoax) treat(republican)
medsens (regress covidhoax republican democrat) (logit inperson republican democrat covidhoax) if wave==2 & votemethod~=. & partyid~=., mediate(covidhoax) treat(republican)

*See also excel file “Mediation Analysis” for the figure “Average Causal Mediation Effect (%)”

*Mediation Analysis with Generalized Structural Equation Modeling (GSEM)

gsem (covidhoax -> inperson, family(binomial) link(logit)) (republican -> inperson, family(binomial) link(logit)) (republican -> covidhoax, ) if wave==2 & votemethod!=. & partyid~=., vce(robust) nocapslatent

*Implicit Mediation

ivregress 2sls inperson (revrisk1=ib3.partyid) if wave==2 & votemethod~=. & partyid<4 & partyid~=., robust first
ivregress 2sls inperson (revrisk2=ib3.partyid) if wave==2 & votemethod~=. & partyid<4 & partyid~=., robust first
ivregress 2sls inperson (dhadcovid=ib3.partyid) if wave==2 & votemethod~=. & partyid<4 & partyid~=., robust first
ivregress 2sls inperson (alphacovidrisk=ib3.partyid) if wave==2 & votemethod~=. & partyid<4 & partyid~=., robust first
ivregress 2sls inperson (covidhoax=ib3.partyid) if wave==2 & votemethod~=. & partyid<4 & partyid~=., robust first

*Appendix Table 10. Risk Tolerance among Early Voters (Pre-Election Sample)

logit alreadyvoted republican democrat revrisk2 if wave==1, robust
logit alreadyvoted republican democrat revrisk1 if wave==1, robust
logit alreadyvoted republican democrat dhadcovid alphacovidrisk if wave==1, robust
logit alreadyvoted republican democrat revrisk2 revrisk1 dhadcovid alphacovidrisk if wave==1, robust

*Appendix Table 11. Risk Tolerance and Voting Method/Intention (Pre-Election Sample)

*To generate the dependent variable
*gen prevotemethod= howvote2020 if wave==1
*replace prevotemethod = 3 if alreadyvoted==1 & wave==1

mlogit prevotemethod ib3.partyid if wave==1 & partyid<4, robust baseoutcome(3)
mlogit prevotemethod ib3.partyid revrisk2 if wave==1 & partyid<4, robust baseoutcome(3)
mlogit prevotemethod ib3.partyid revrisk1 if wave==1 & partyid<4, robust baseoutcome(3)
mlogit prevotemethod ib3.partyid revrisk2 revrisk1 dhadcovid alphacovidrisk if wave==1 & partyid<4, robust baseoutcome(3)

*Appendix Table 12. Risk Tolerance and Non-Voters (Post-Election Sample)

*To construct the dependent variable
*gen votemethod2 = votemethod if wave==2
*replace votemethod2 = 0 if votemethod==. & wave==2
*label values votemethod2 Wav1_VOTE20202

*gen nonvoter = 1 if votemethod2==0 & wave==2
*replace nonvoter = 0 if votemethod2>0 & wave==2

logit nonvoter ib3.partyid if wave==2 & partyid<4, robust
logit nonvoter ib3.partyid revrisk1 revrisk2 if wave==2 & partyid<4, robust
logit nonvoter ib3.partyid revrisk1 revrisk2 dhadcovid alphacovidrisk covidhoax  if wave==2 & partyid<4, robust

*Or see multinomial logit version

mlogit votemethod2 ib3.partyid if wave==2 & partyid<4, robust baseoutcome(1)
mlogit votemethod2 ib3.partyid revrisk2 if wave==2 & partyid<4, robust baseoutcome(1)
mlogit votemethod2 ib3.partyid revrisk2 revrisk1 dhadcovid alphacovidrisk covidhoax if wave==2 & partyid<4, robust baseoutcome(1)

*Appendix Table 13. Panel Attrition Analysis

logit attrition republican democrat revrisk1 revrisk2 dhadcovid alphacovidrisk alreadyvoted  female ageyr education income ib2.race latino dbornusa devangelical if wave==1, robust

*Appendix Table 14. Summary Demographics for Panel, Wave 1, and Pooled Samples

*Appendix Table 14.1.
*Panel Data

sum i.votemethod i.partyid female ageyr education i.race dlatino dbornusa devangelical income stateunemp dhadcovid alphacovidrisk covidhoax  pnew_case pnew_death   i.census_region i.census_ rural dvoteprimary dvoted alreadyvoted pstatebiden battleground pstatebiden flipped if panel==1 & wave==1

*Appendix Table 14.2.
*Wave 1 Full Sample (Panel and Non-Panel)

sum alreadyvoted revrisk1 revrisk2 i.partyid female ageyr education i.race dlatino dbornusa devangelical income stateunemp dhadcovid alphacovidrisk covidhoax  pnew_case pnew_death   i.census_region i.census_ rural dvoteprimary dvoted alreadyvoted pstatebiden battleground pstatebiden flipped panel if wave==1

*Appendix Table 14.3.
*Pooled Data (combines both pre- and post-election samples)

sum i.partyid female ageyr education i.race dlatino dbornusa devangelical income stateunemp dhadcovid alphacovidrisk covidhoax  pnew_case pnew_death   i.census_region i.census_ rural dvoteprimary dvoted alreadyvoted pstatebiden battleground pstatebiden flipped wave panel 

*Sensitivity Analysis Using a Trump Voter List Experiment

*In direct questions, 59% of our sample indicated that they voted for Biden, 37% for Trump, and <4% for someone else.

tab whovote2020 if wave==2 

*Difference in means estimation (Tsai 2019) indicates that 34% of respondents in the survey chose Trump in the 2020 election, 
*compared to 37% of the sample when using the direct item.

kict ls listexp if wave==2 & partyid<4 & votemethod~=., nnonkey(5) condition(listgroup) estimator(linear)

*“When we compare the direct results, based on party ID, we find that 94% of voting Democrats say directly that they selected Biden, 
*while 5.5% voted for Trump. Among voting Republicans, 81% say they chose Trump and 17% selected Biden. 
*Lastly, among Independents who voted, 55% chose Biden and 36% selected Trump.” 

tab whovote2020 if wave==2 & partyid==1
tab whovote2020 if wave==2 & partyid==2
tab whovote2020 if wave==2 & partyid==3

*We now examine data from the list experiment. 

kict ls listexp republican democrat  if wave==2 & partyid<4 & votemethod~=., nnonkey(5) condition(listgroup) estimator(linear)

*Further Discussion of Framing of Loss Aversion in the 2020 Election

*Appendix Table 15. Voting in the 2020 Election (Multinomial Logit Regression)

mlogit votemethod republican##battleground##whowin2020 democrat revrisk1 revrisk2 dhadcovid alphacovidrisk covidhoax if wave==2 & partyid<4 & whowin2020<3 & whovote2020<3, cluster(state)
mlogit votemethod republican##battleground##whowin2020 i.whovote2020 democrat revrisk1 revrisk2 dhadcovid alphacovidrisk covidhoax if wave==2 & partyid<4 & whowin2020<3 & whovote2020<3, cluster(state)

log close
